package com.ynet.middleground.riskmanage.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.riskmanage.bean.*;
import com.ynet.middleground.riskmanage.dto.BlchRespDTO;
import com.ynet.middleground.riskmanage.dto.BlchStatusDTO;
import com.ynet.middleground.riskmanage.dto.CustListRespDTO;
import com.ynet.middleground.riskmanage.dto.PayableDTO;

/**
 * @author liulx
 * @description 全球捷运服务
 * @date 2020-08-17 14:51
 */
public interface WorldexService {

    /**
     * 查询应付账款列表
     * 
     * @param req 应付账查询信息
     * @return 应付账款列表
     */
    ServiceResult<List<PayableDTO>> listServices(@Valid PayableQueryReq req);

    /**
     * 查询保理池业务出入池状态
     *
     * @param req 查询保理池业务出入池状态请求信息
     * @return 出入池状态数据
     */
    ServiceResult<BlchStatusDTO> queryBlchStatus(@Valid BlchQueryReq req);

    /**
     * 接收全球捷运推送的保理池入池数据
     * 
     * @param req 保理池入池数据参数信息
     * @return 保理池业务出、入池响应结果数据
     */
    ServiceResult<BlchRespDTO> receiveBlchIn(@Valid BlchInReq req);

    /**
     * 接收全球捷运推送的保理池出池数据
     * 
     * @param req 保理池出池数据参数信息
     * @return 保理池业务出、入池响应结果数据
     */
    ServiceResult<BlchRespDTO> receiveBlchOut(@Valid BlchOutReq req);

    /**
     * 接收全球捷运推送的客户分析数据
     *
     * @param req 客户分析数据参数信息
     * @return 响应结果数据
     */
    ServiceResult<String> receiveCustomerAnalytics(@Valid WorldexCustomerAnalyticsReq req);

    /**
     * 接收全球捷运推送的客户全量数据
     *
     * @param req 客户全量数据参数信息
     * @return 响应结果数据
     */
    ServiceResult<String> receiveCustomerAll(@Valid WorldexCustomerAllListReq req);
    /**
     * 客户名单查询
     *
     * @param req
     * @return
     */
    ServiceResult<List<CustListRespDTO>> getCustList(@Valid CustListQueryReq req);

    /**
     * 客户审核结果推送
     *
     * @param req
     * @return
     */
    ServiceResult<Object> pushCustApproveResult(@Valid CustApproveListReq req);

}
